* Syntax "The World Cup and Presidential Popularity in Brazil"

* Figure 1
* Open data file (user-defined)

use "P:\Artigos\Avulsos\Em producao\Lula II - RLAOP\Dados EAD\Approval\ead_monthly_app_1.0 - with DATE.dta", clear
twoway (line approval date if ccode ==140 in 984/1031, lcolor(ebblue)), title(Rousseff's Approval(%)) ttext(70 19580 "Protests", orientation (vertical)) ttext(70 19950 "Copa do Mundo", orientation (vertical)) xline(19510) xline(19875) name(g1)

* Open data file (user-defined)

use "F:\Pedro\Area de trabalho\Copa do Mundo\Graficos revisao.dta", clear
twoway (bar manif dat3 in 8/28, lcolor(none) barwidth(3)), title(Protests News � 2014 (%)) name(g2)
twoway (bar copa dat3 in 8/28, lcolor(none) barwidth(3)), title(World Cup News � 2014 (%)) name(g3)
twoway (line favor contra dat3 in 13/29), ylabel(20(20)80) title(World Cup Support � 2014 (%)) name(g4)

graph combine g1 g2 g3 g4

* Open data file (user-defined)
use "F:\Pedro\Area de trabalho\Copa do Mundo\Job1031-4-banco cliente-final.dta", clear

* Recode variables 

* Sociodemographic

recode SEXO (1=1 Homem) (2=0 Mulher), gen(sexo2)
label var sexo2 "Homem"
recode idad (1/2=1 16-24) (3=2 25-34) (4=3 35-44) (5=4 45-54) (6/7=5 >55), gen(idade2) 	
label var idade2 "Idade"
recode INST (1/2=1 Sem_escola) (3/4=2 1�-4�) (5/6=3 5�-8�) (7/8=4 2�_Grau) (9/10=5 Superior), gen(escola)
label var escola "Educa��o"
recode REND2 (1=1 At�_1_SM) (2=2 1-2_SM) (3=3 2-5_SM) (4/6=4 >5_SM) (nonmissing=.), gen(rendaf)
label var rendaf "Renda familiar mensal"
recode porte (1/3=1 At�_20) (4=2 20-50) (5=3 50-100) (6=4 100-500) (7=5 >500), gen(porte2) 
label var porte2 "Porte do munic�pio"

* Government Evaluation

recode P3 (1=1 Aprova) (2=0 Desaprova) (nonmissing=.), gen(ap_gov)
label var ap_gov "Aprova o Governo Federal"

* Evaluation: economy (country and personal) and public services 

recode P11 (1=5 �timo) (2=4 Bom) (3=3 Regular) (4=2 Ruim) (5=1 P�ssimo) (nonmissing=.), gen(eco_pais)
label var eco_pais "Avalia��o da economia do pa�s"
recode P14 (1=5 �timo) (2=4 Bom) (3=3 Regular) (4=2 Ruim) (5=1 P�ssimo) (nonmissing=.), gen(eco_pessoa)
label var eco_pessoa "Avalia��o da economia pessoal"
recode P18 (0=0) (1=1) (2=2) (3=3) (4=4) (5=5) (6=6) (7=7) (8=8) (9=9) (10=10) (nonmissing=.), gen(servicos)
label var servicos "Avalia��o dos servi�os p�blicos"

* Corruption (biggest problem for the country)

recode P501 (6=1 Corrup��o) (nonmissing=0 Outras), gen(corrupcao1)
recode P502 (6=1 Corrup��o) (nonmissing=0 Outras), gen(corrupcao2)
recode P503 (6=1 Corrup��o) (nonmissing=0 Outras), gen(corrupcao3)
gen corrupcao = corrupcao1 + corrupcao2 + corrupcao3
label var corrupcao "Corrup��o (maior problema do pa�s)"
drop corrupcao1 corrupcao2 corrupcao3

* World Cup variables

recode P45 (1=1 A_favor) (2=0 Contra) (nonmissing=.), gen(copa1)
label var copa1 "A favor da Copa do Mundo"
recode P49 (3=1 Nenhum) (2=2 Brasil) (1=3 Todos) (nonmissing=.), gen(copa3)
label var copa3 "Interesse na Copa do Mundo"
recode UF (11=0) (12=0) (13=1) (14=0) (15=0) (16=0) (17=0) (21=0) (22=0) (23=1) (24=1) (25=0) (26=1) (27=0) (28=0) (29=1) (31=1) (32=0) (33=1) (35=1) (41=1) (42=0) (43=1) (50=0) (51=1) (52=0) (53=1) (nonmissing=0 Outras), gen(sede1)
recode cond (1/2=1 Capital) (3=0 Outras), gen(cond3)
gen sede2 = sede1*cond3
label var sede2 "Cidades-sede"
recode P46 (1=1 Benef�cios) (nonmissing=0), gen(beneficios)
label var beneficios "Benef�cios"
recode P46 (2=1 Preju�zos) (nonmissing=0), gen(prejuizos)
label var prejuizos "Preju�zos"

* Interactions 1

gen copasede = copa1*sede2
label var copasede "A favor da Copa � Cidade-sede"

* Mean centering

gen servicosc = servicos - 4.911839

* Interactions 2 and 3

gen copaserv = copa1*servicosc
label var copaserv "A favor da Copa � Avalia��o dos servi�os p�blicos"
gen copasedeserv = copa1*sede2*servicosc
label var copasedeserv "A favor da Copa � Cidades-sede � Avalia��o dos servi�os p�blicos"

* Descriptive statistics - table 1

sum ap_gov copa1 beneficios prejuizos sede2 copa3 eco_pais eco_pessoa servicos corrupcao sexo2 idade2 escola rendaf porte2  

* Models 
* Table 2
* esttab required

eststo clear
quietly eststo: logit ap_gov eco_pais eco_pessoa servicos corrupcao sexo2 idade2 escola rendaf porte2 
quietly eststo: logit ap_gov eco_pais eco_pessoa servicos corrupcao sexo2 idade2 escola rendaf porte2 copa1 copa3 sede2 beneficios prejuizos 
quietly eststo: logit ap_gov eco_pais eco_pessoa servicos corrupcao sexo2 idade2 escola rendaf porte2 copa1 copa3 sede2 beneficios prejuizos copasede copaserv copasedeserv 
esttab, unstack se(2) b(a2) pr2 scalars("ll Log lik." "chi2 Chi-squared" "aic AIC")  star(* 0.10 ** 0.05 *** 0.01) nonumbers compress eform

* Figure 2
* coefplot required

graph drop _all
eststo clear
logit ap_gov eco_pais servicos escola porte2 if copa1 == 1
margins, at(servicos=(0(1)10)) post
estimates store mod1
logit ap_gov eco_pais servicos escola porte2 if copa1 == 0
margins, at(servicos=(0(1)10)) post
estimates store mod2
coefplot (mod1, label(For)) (mod2, label(Against)), title(All Cities) ytitle(Pr(Approval=1)) xtitle(Evaluation of Public Services) at recast(line) lwidth(*2) ciopts(recast(rline) lpattern(dash)) ylabel(0(.2)1) xlabel(0(1)10) legend(cols(2) position(12)) name(g1)

eststo clear
logit ap_gov eco_pais servicos escola porte2 if copa1 == 1 & sede2 == 1 
margins, at(servicos=(0(1)10)) post
estimates store mod1
logit ap_gov eco_pais servicos escola porte2 if copa1 == 0 & sede2 == 1
margins, at(servicos=(0(1)10)) post
estimates store mod2
coefplot (mod1, label(For)) (mod2, label(Against)), title(Host Cities) ytitle(Pr(Approval=1)) xtitle(Evaluation of Public Services) at recast(line) lwidth(*2) ciopts(recast(rline) lpattern(dash)) ylabel(0(.2)1) xlabel(0(1)10) legend(cols(2) position(12)) xsize(2.5) ysize(2.5) name(g2)

eststo clear
logit ap_gov eco_pais servicos escola porte2 if copa1 == 1 & sede2 == 1 
margins, at(servicos=(0(1)10)) post
estimates store mod1
logit ap_gov eco_pais servicos escola porte2 if copa1 == 0 & sede2 == 0
margins, at(servicos=(0(1)10)) post
estimates store mod2
coefplot (mod1, label(For)) (mod2, label(Against)), title(Other Cities) ytitle(Pr(Approval=1)) xtitle(Evaluation of Public Services) at recast(line) lwidth(*2) ciopts(recast(rline) lpattern(dash)) ylabel(0(.2)1) xlabel(0(1)10) legend(cols(2) position(12)) xsize(2.5) ysize(2.5) name(g3)
graph combine g1 g2 g3
